Camera image processing uses a warp correction system to correct for warping in an input image. Warp correction is a mapping of a pixel in an output image to a pixel in the input image. The mapping is defined by a two-dimensional (2D) warp field that depends on the optical characteristics of the lens and a zoom factor. Conventionally, the warp field is computed for a camera design and stored in 2D tables of an actual camera. Since the table entry spacing covers more than a single pixel, 2D bilinear interpolation is used to calculate the warp field at the missing pixels. The warp field spans hundreds of lines across the input image and so a large buffer space is used to hold sufficient input image data. Management of the buffer is based on a minimum warp field calculated across a next pixel line. Conventional approaches hold the warp field in either a 5-ported memory or 5 memory banks to achieve a single pixel per clock performance.
It would be desirable to achieve the single pixel per clock performance with a single-ported memory.